#ifndef __INC_LEDCONTROLLER_H
#define __INC_LEDCONTROLLER_H
#include <FastLED.h>
#include "Config.h"
#include "LedShow.h"

// LED控制器
class LedController
{
private:
    //是否修改过显示模式
    bool _isChangeMode = false;
    //Led展示方式ColorPalette
    LedShow_ColorPalette ledShow_ColorPalette;
    LedShow_ColorTemperature ledShow_ColorTemperature;
    LedShow_Cylon ledShow_Cylon;

    // led状态保存
    LedState _ledState;
    // led数组
    CRGB leds[NUM_LEDS];
    // setRGB
    void setRGB(CRGB *rgb);


public:
    // 构造
    LedController();
    // 开始设置
    void Setup();
    // getter
    LedState getLedState();
    // setter
    void setLedState(LedState ledState);
    // getRGB
    CRGB getRGB();
    // show
    void show();
    // 是否有模式改变,从_isChangeMode从获取，有改变调用后都改成不改变
    bool IsChangeMode();
};

#endif